import axios from 'axios';
// 使用antUI的加载中提示
import { Toast } from 'antd-mobile';

// 2 你知道 axios 可以 create吗 创建多个  实例 

// 项目中如果用到了 百度的接口  腾讯的接口  就有必要create多个接口
// 封装服务器 基准路径
export const baseURL = process.env.REACT_APP_API;

export const request = axios.create({ baseURL })


// 🚩同时发送n个请求出去 n个请求依次回来 的情形下  Toast 会被提前关闭  !!!
// 解决：定义一个记录器，记录当前请求的次数
let ajaxTimes = 0;


// 添加请求拦截器
request.interceptors.request.use(function (config) {
    // 在发送请求之前做些什么
    // 1.🚩显示加载中
    Toast.loading('玩命加载中...', 0);
    // 请求数递增
    ajaxTimes++;
    return config;
}, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
});

// 添加响应拦截器
request.interceptors.response.use(function (response) {
    // 对响应数据做点什么
    // 所有数据请求完成了，才关闭
    ajaxTimes--;
    ajaxTimes === 0 && Toast.hide();
    //  return response;
    // 🚩4.axios封装-简化接口的返回值
    return response.data;
}, function (error) {
    // 对响应错误做点什么
    return Promise.reject(error);
});